package leetCode.hw.math;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class HJ60Solution implements HJ60{

    @Override
    public List<Integer> getPrimeNum(int n) {
        List<Integer> result = new ArrayList<>(2);
        Set<Integer> primeSet = new HashSet<>();
        int sub = Integer.MAX_VALUE;
        for(int i=1;i<n;i++) {
            int flag = 0;
            for(int j=2;j<=Math.sqrt(i);j++) {
                if (i % j == 0) {
                    flag = 1;
                    break;
                }
            }
            if(flag==0) primeSet.add(i);
        }
        for(int num:primeSet) {
            if(primeSet.contains(n-num)&&Math.abs(2*num-n)<sub){
                if(num<n-num){
                    result.add(0,num);
                    result.add(1,n-num);
                }
                else {
                    result.add(0,n-num);
                    result.add(1,num);
                }
                sub = Math.abs(2*num-n);

            }
        }
        return result;
    }
}
